www.gusucode.com > matlab从零到进阶程序与数据 > matlab从零到进阶程序与数据/第2章 MATLAB基本操作/Chapter2.m

    %--------------------------------------------------------------------------
%  第2章  MATLAB基本操作
%--------------------------------------------------------------------------

%% examp2.1-1
x = 1
y = 1+2+sqrt(9)
z = 'Hellow World !!!'

%% examp2.2-1
x = [1  -1.65  2.2  -3.1];
y1 = abs(x)
y2 = sin(x)
y3 = round(x)
y4 = floor(x)
y5 = ceil(x)
y6 = min(x)
y7 = mean(x)
y8 = range(x)
y9 = sign(x)

%% examp2.3-1
x = []
y = [1, 2, 3;4  5  6;7  8, 9]
z = [1  2  3
     4  5  6
     7  8  9]

%% examp2.3-2
x = 1:10 
y = 1:2:10
z = [1:3; 4:6; 7:9]

%% examp2.3-3
x = linspace(1, 10, 10)

%% examp2.3-4
x = [1  2  3; 4  5  6]
size(x)
[m, n] = size(x)

%% examp2.3-5
x = [1  2  3; 4  5  6; 7  8  9]
y1 = x(1, 2)
y2 = x(2:3, 1:2)
y3 = x(:, 1:2)
y4 = x(1, :)
y5 = x(:)'
y6 = x(3:6)

%% examp2.3-6
x1 = [1  2  3];
x2 = [4  5  6];
x = [x1; x2]
y = reshape(x, [3, 2])
z = repmat(x, [2, 2])

%% examp2.3-7
x = ['abc'; 'def'; 'ghi'] 
size(x)

%% examp2.3-8
x = 2i+5
y = [1  2  3; 4  5  6]*i+7
a = [1  2; 3  4];
b = [5  6; 7  8];
c = complex(a,b)

%% examp2.3-9
syms a b c d
x = [a  b; c  d]
y = [1  2  3; 4  5  6];  
y = sym(y)

%% examp2.3-10
A = zeros(3)
B = ones(3,5)
C = eye(3,5)
D = diag([1 2 3])
E = diag(D)
F = rand(3)
G = magic(3)

%% examp2.3-11
% 定义一个2行,2列,2页的3维数组
x(1:2, 1:2, 1)=[1  2; 3  4];
x(1:2, 1:2, 2)=[5  6; 7  8];

%% examp2.3-12
A1 = [1  2; 3  4];
A2 = [5  6; 7  8];
A = cat(3, A1, A2)

%% examp2.3-13
x = reshape(1:12, [2, 2, 3]) 

%% examp2.3-14
x = repmat([1  2; 3  4], [1 1 2])

%% examp2.3-15
% 通过直接赋值方式定义一个1行2列的结构体数组
struct1(1).name = 'xiezhh';
struct1(2).name = 'heping';
struct1(1).age = 31;
struct1(2).age = 32;
struct1 

%% examp2.3-16
struct2 = struct('name', {'xiezhh', 'heping'}, 'age',{31, 32})
struct2(1).name

%% examp2.3-17
c1 = {[1  2; 3  4], 'xiezhh', [5  6  7], 'I LOVE MATLAB'}

%% examp2.3-18
c2 = cell(2,4)
c2{2, 3} = [1  2  3]

%% examp2.3-19
c = {[1  2], 'xie', 'xiezhh'; 'MATLAB', [3  4; 5  6], 'I LOVE MATLAB'}
c(2, 2)
c{2, 2}
c = {[1  2],  'xiezhh'; 'MATLAB', [3  4; 5  6]};
celldisp(c)

%% examp2.3-20
A1 = rand(60,50);
B1 = mat2cell(A1, [10 20 30], [25 25])
C1 = cell2mat(B1);
isequal(A1,C1)
A2 = [1 2 3 4;5 6 7 8;9 10 11 12];
B2 = num2cell(A2)
C = {'Heping', 'Tianjin', 35;  'Xiezhh', 'Xingyang', 30}
fields = {'Name', 'Address', 'Age'};
S = cell2struct(C, fields, 2)
CS = struct2cell(S)
isequal(C,CS')

%% examp2.3-21
A = [1  2; 3  4];
B = [5  6; 7  8];
C = A+B
D = A-B

%% examp2.3-22
A = [1  2  3; 4  5  6];
B = [1  1  1  1; 2  2  2  2; 3  3  3  3];
C = A*B 
D = [1  1  1; 2  2  2];
E = A.*D 

%% examp2.3-23
A = [2  3  8; 1  -2  -4; -5  3  1];
b = [-5; 3; 2];
x = A\b
B = A;
C = A./B

%% examp2.3-24
A = [1  2; 3  4];
B = A ^ 2
C = A .^ 2
D = A .^ A

%% examp2.3-25
A = [1  2; 3  4];
B = [2  2; 2  2];
C1 = A > B 
C2 = A ~= B
C3 = A >=2

%% examp2.3-26
A = [0  0  1  2];
B = [0  -2  0  1];
C1 = A | B
C2 = A & B
C3 = ~ A
C4 = xor(A, B)
x = 5;
y = 0;
x || y
x && y

%% examp2.3-27
A = [1  2  3; 4  5  6; 7  8  9]
B = A'

%% examp2.3-28
A = [1  2  3; 4  5  6; 7  8  9];
B1 = flipud(A)
B2 = fliplr(A)
B3 = rot90(A)

%% examp2.3-29
A = [1  2; 3  4];
d1 = det(A)
syms a b c d
B = [a  b; c  d];
d2 = det(B)

%% examp2.3-30
A = [1  2; 3  4];
Ai = inv(A)
syms a b c d
B = [a  b; c  d];
Bi = inv(B) 
C = [1  2  3; 4  5  6];
Cpi = pinv(C)
D = C * Cpi * C

%% examp2.3-31
A = [5  0  4; 3  1  6; 0  2  3];
d = eig(A)
[V, D] = eig(A)
[Vs, Ds] = eig(sym(A))

%% examp2.3-32
A = [1  2  3; 4  5  6; 7  8  9];
t = trace(A)
r = rank(A)

%% examp2.5-1
A = [1 2 3;4 5 6;7 8 9];
B = 100;
Str = 'Hellow World !!!';
C = cell(2,3);
S = struct('name', {'heping','xiezhh'}, 'age',{30, 32});
syms a b c d
D = [a b;c d]; 
whos
save  xiezhh.mat A B Str 
clear  A  B  Str
load  xiezhh.mat
which sin
open sqrt
type trace